package com.springboot.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author ifredom
 * @Date 2022/5/16
 * @ClassName CorsConfig
 * @Version 1.0.0
 * @Description 重写 addCorsMappings方法即可实现跨域
 **/
/*
 * 跨域测试方法
 * <p>
 * 浏览器F12任意开启一个控制台，输入以下代码：
 * ```js
 var xhr = new XMLHttpRequest();
 xhr.open("GET", "http://localhost:9501/students");
 xhr.send(null);
 xhr.onload = function(e) {
    var xhr = e.target;
    console.log(xhr.responseText);
 }
 * ```
 */

@Configuration
public class CorsConfig implements WebMvcConfigurer {


    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 条件越多，限制越紧
        // ? 如何查看请求得接口地址 ip
        registry.addMapping("/**")
                .allowedOrigins("*")
                // 是否允许发送Cookie信息
                .allowCredentials(true)
                // 是否允许携带请求头信息
                .allowedHeaders("*")
                // 允许哪些 http 方法访问
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                // 有效时长
                .maxAge(3600);
    }
}

